既然卡都可以抽了,那是不是可以開始做抽卡收藏?
原本想把主畫面上的 ☆ 拿來做收藏,讓使用者可以看到自己曾經抽過哪些卡片。
但真的準備往下做的時候,才發現好像不能直接開始。
前面為了測試抽卡功能,我只先放了三張卡片。
但原本《時間就是金錢》其實已經做過大約 50 張梗圖卡和生活挑戰卡,所以今天第一件事,就是先把原本的卡牌全部整理進:
image/cards/
一開始想得很簡單。
如果這些卡片都只是拿來隨機抽,好像只要讓程式知道「總共有幾張卡」,就可以直接從裡面隨機選一張。
例如總共有 50 張,就設定:
totalCards = 50;
如果圖片的檔名本身有固定規則,例如 card1.png、card2.png,就可以透過隨機產生 1~50 的數字,再組出對應的圖片路徑,之後如果又新增新的卡片,也只要把數字改掉就好了。
但想到之後準備做的功能,才發現這個方法沒有想像中方便。
目前的卡牌主要分成兩種:
梗圖卡和生活挑戰卡。
現在抽到哪一種其實沒有太大的差別,都是把對應的圖片顯示出來。
但如果開始製作生活挑戰卡的其他功能,兩種卡片抽出來後要做的事情就不一樣了。
抽到生活挑戰卡 → 實際完成挑戰 → 上傳照片 → 留下紀錄
這時候程式就不能只知道:
「我抽到了第 20 張圖片。」
還要知道:
「我抽到的這張,到底是梗圖卡還是生活挑戰卡?」
所以今天先沒有繼續往收藏功能做,而是決定先把原本的卡牌資料整理好。
原本單純只有圖片路徑的卡片,這次開始替它們整理一些基本資料。
目前先保留三個:
{
id: ...,
type: ...,
image: ...
}
id用來辨認是哪一張卡片。image對應實際的卡片圖片。type則用來區分卡片種類。
meme代表梗圖卡。
challenge代表生活挑戰卡。
不過今天還沒有開始做生活挑戰卡的完成、照片紀錄等功能。
現在的 type 只是先把每張卡片的身分標記好,讓之後真的開始做不同功能時,程式已經知道現在抽到的是哪一種類型。
雖然現在多了 meme 和 challenge 兩種類型,但目前的抽卡規則沒有改變。
梗圖卡和生活挑戰卡還是全部放在同一個抽卡池裡:
所有卡片 → 同一個 cardList → 每張卡等機率隨機
不會先決定要抽梗圖卡還是生活挑戰卡,也沒有另外設定稀有度或不同機率。
真正改變的是,程式現在不只知道卡片的圖片,也開始知道每張卡片各自的身分。
如果只考慮目前的抽卡功能,把所有卡片當成圖片其實就已經夠用了。
但當我開始想到下一步要做收藏,再往後還有生活挑戰的完成與紀錄,才發現現在怎麼整理這些卡片,也會影響之後的功能要怎麼接。
原本我比較常想的是:
「這個功能現在能不能做出來?」
但這次反而多想了一步:
「我接下來還想拿這些資料做什麼?」
後來才發現,這其實已經不只是把圖片放進抽卡池,而是開始思考卡牌的資料應該怎麼整理。
原本每張卡對程式來說可能只是一個圖片路徑,但當它開始有自己的 id、type 和 image,後面的收藏、分類和生活挑戰功能才比較有東西可以接著使用。
也因為先想到後面要做的事情,才決定今天先不急著繼續加功能,而是先把卡牌的資料整理好。
原來下一步要做什麼,也會反過來影響現在應該怎麼做。